/*
 * Classe qui s'occupe de l'affichage du bas, qui permet de voir l'etats des params exterieurs
 * et d'inteagir avec eux
 * 
 * 
 */
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

/**
 *
 * @author Nicolas
 */
public class MenuParamExt extends JPanel implements ActionListener{

	private JPanel panPrincipal;
	private JPanel panPrincipalGrid;  
	private JPanel panVent;
	private JPanel panJour;
	private JPanel panTemperature;

	private JLabel textVent;
	private JLabel textJour;
	private JLabel textTemperature;
	private JLabel valVent;
	private JLabel valJour;
	private JLabel valTemperature;

	private JButton changer;
	private JOptionPane jopvent;

	private Glados glados;

	MenuParamExt(Glados glados){

		this.glados = glados;

		panPrincipal = new JPanel(new BorderLayout());
		panPrincipalGrid = new JPanel(new GridLayout(0,4));
		panVent = new JPanel();
		panJour = new JPanel();
		panTemperature= new JPanel();

		textVent = new JLabel("Vent : ");
		textJour = new JLabel("Jour/Nuit : ");
		textTemperature = new JLabel("Température : ");

		if(glados.getCapteur("ventExt").getParamExt().getValeurExt()==0)
			valVent = new JLabel(" Non");
		else
			valVent = new JLabel("Oui");

		if(glados.getCapteur("luminositeExt").getParamExt().getValeurExt()==0)
			valJour = new JLabel("Nuit");
		else
			valJour = new JLabel("Jour");

		valTemperature = new JLabel((String.valueOf(glados.getCapteur("temperatureExt").getParamExt().getValeurExt())).concat("°C"));

		changer = new JButton("Changer Paramêtre");
		changer.addActionListener(this);        
		panPrincipal.setPreferredSize(new Dimension(800,30));

		this.panVent.add(textVent);
		this.panJour.add(textJour);    
		this.panTemperature.add(textTemperature);
		this.panVent.add(valVent);
		this.panJour.add(valJour);
		this.panTemperature.add(valTemperature);
		this.panPrincipalGrid.add(changer);
		this.panPrincipalGrid.add(panVent);
		this.panPrincipalGrid.add(panJour);
		this.panPrincipalGrid.add(panTemperature);
		this.panPrincipal.add(panPrincipalGrid, BorderLayout.EAST);  
		this.add(panPrincipal);

	}
	/**
	 * affiche la boite de ialogue et permet de modifier les parametres exterieurs
	 */
	public void afficherJOP(){    

		String[] choix = {"Vent", "Jour/Nuit", "Température"};  // affiche la premiere boite de ialogues avec les differentes choix
		int rang = JOptionPane.showOptionDialog(null, 
				"Que voulez vous changer comme parametre ?",
				"Changement des paramêtres extérieurs",
				JOptionPane.YES_NO_CANCEL_OPTION,
				JOptionPane.QUESTION_MESSAGE,
				null,
				choix,
				choix[2]
		);

		if(rang == 0){                                              // si la modification se porte sur le vent
			System.out.println("vent");
			int option = JOptionPane.showConfirmDialog(null, "Voulez vous du vent ?", "", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

			if(option == JOptionPane.OK_OPTION)                 // Veut mettre de vent 
			{
				// appeller la fonction qui suit 
				glados.getCapteur("ventExt").getParamExt().setValeurExt(1);
				valVent.setText("oui" );

			}
			if(option == JOptionPane.NO_OPTION)                 // ne veut pas mettre de vent 
			{
				//appeller la fonction qui suit 
				glados.getCapteur("ventExt").getParamExt().setValeurExt(0);
				valVent.setText("non" );
			}
		}

		else if(rang == 1 ){                                        // la modification qui se rapporte sur l'ensolleiementt
			String[] options = {"Jour","Nuit",}; 
			int rang2 = JOptionPane.showOptionDialog(
					null,
					"Voulez vous qu'il fasse jour ou nuit ?","", 
					JOptionPane.YES_NO_CANCEL_OPTION, 
					JOptionPane.QUESTION_MESSAGE,
					null, 
					options, 
					options[0]);
			System.out.println(rang2);      
			if (rang2 == 0) {
				// appeller la fonction qui suit 
				glados.getCapteur("luminositeExt").getParamExt().setValeurExt(1);
				System.out.println("Il fait jour");
				valJour.setText("Jour" );

			}
			else if(rang2 == 1){
				// appeller la fonction qui suit 
				glados.getCapteur("luminositeExt").getParamExt().setValeurExt(0);
				System.out.println("Il fait nuit");
				valJour.setText("Nuit" );
			}

		}

		else if(rang ==2)   {                                        // la modification se porte sur la temperature
			System.out.println("temperature");
			String[] temp = {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17",
					"18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35"};
			Object nom = JOptionPane.showInputDialog(
					null, 
					"Quel température voulez vous ?",
					"",
					JOptionPane.QUESTION_MESSAGE,
					null,
					temp,
					temp[0]);            

			System.out.println(nom);
			// appeller la fonction qui suit 
			String temporaire = ((String) (nom));
			glados.getCapteur("temperatureExt").getParamExt().setValeurExt(Integer.parseInt(temporaire));
			valTemperature.setText(temporaire.concat("°C"));
		}
	}

	/**
	 * gere l'action du bouton de modifier les params exterieurs
	 * @param e 
	 */
	public void actionPerformed(ActionEvent e) {
		if(e.getSource().equals(changer)){
			this.afficherJOP();                         
		}
	}
}